package com.zzyl.entity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

/**
* 用户表
* @TableName sys_user
*/
@Data
public class User implements Serializable {

    /**
    * 用户ID
    */
    @NotNull(message="[用户ID]不能为空")
    @ApiModelProperty("用户ID")
    private Long id;
    /**
    * 用户账号
    */
    @Size(max= 30,message="编码长度不能超过30")
    @ApiModelProperty("用户账号")
    @Length(max= 30,message="编码长度不能超过30")
    private String username;
    /**
    * open_id标识
    */
    @Size(max= 36,message="编码长度不能超过36")
    @ApiModelProperty("open_id标识")
    @Length(max= 36,message="编码长度不能超过36")
    private String openId;
    /**
    * 密码
    */
    @NotBlank(message="[密码]不能为空")
    @Size(max= 100,message="编码长度不能超过100")
    @ApiModelProperty("密码")
    @Length(max= 100,message="编码长度不能超过100")
    private String password;
    /**
    * 用户类型（0:系统用户,1:客户）
    */
    @Size(max= 2,message="编码长度不能超过2")
    @ApiModelProperty("用户类型（0:系统用户,1:客户）")
    @Length(max= 2,message="编码长度不能超过2")
    private String userType;
    /**
    * 头像地址
    */
    @Size(max= 100,message="编码长度不能超过100")
    @ApiModelProperty("头像地址")
    @Length(max= 100,message="编码长度不能超过100")
    private String avatar;
    /**
    * 用户昵称
    */
    @Size(max= 30,message="编码长度不能超过30")
    @ApiModelProperty("用户昵称")
    @Length(max= 30,message="编码长度不能超过30")
    private String nickName;
    /**
    * 用户邮箱
    */
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("用户邮箱")
    @Length(max= 50,message="编码长度不能超过50")
    private String email;
    /**
    * 真实姓名
    */
    @Size(max= 30,message="编码长度不能超过30")
    @ApiModelProperty("真实姓名")
    @Length(max= 30,message="编码长度不能超过30")
    private String realName;
    /**
    * 手机号码
    */
    @Size(max= 11,message="编码长度不能超过11")
    @ApiModelProperty("手机号码")
    @Length(max= 11,message="编码长度不能超过11")
    private String mobile;
    /**
    * 用户性别（0男 1女 2未知）
    */
    @ApiModelProperty("用户性别（0男 1女 2未知）")
    private String sex;
    /**
    * 数据状态（0正常 1停用）
    */
    @NotNull(message="[数据状态（0正常 1停用）]不能为空")
    @ApiModelProperty("数据状态（0正常 1停用）")
    private String dataState;
    /**
    * 部门编号
    */
    @Size(max= 22,message="编码长度不能超过22")
    @ApiModelProperty("部门编号")
    @Length(max= 22,message="编码长度不能超过22")
    private String deptNo;
    /**
    * 岗位编号
    */
    @Size(max= 22,message="编码长度不能超过22")
    @ApiModelProperty("岗位编号")
    @Length(max= 22,message="编码长度不能超过22")
    private String postNo;
    /**
    * 创建时间
    */
    @NotNull(message="[创建时间]不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    private Date updateTime;
    /**
    * 备注
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("备注")
    @Length(max= 500,message="编码长度不能超过500")
    private String remark;
    /**
    * 创建者
    */
    @ApiModelProperty("创建者")
    private Long createBy;
    /**
    * 更新者
    */
    @ApiModelProperty("更新者")
    private Long updateBy;
    /**
    * 是否是部门leader(0:否，1：是)
    */
    @ApiModelProperty("是否是部门leader(0:否，1：是)")
    private Integer isLeader;
    /**
    * 是否删除
    */
    @ApiModelProperty("是否删除")
    private Integer isDelete;

}
